查看原文
其他

非技术创业者如何搞定技术:游戏程序员和普通程序员的不同之处

曾嵘 曾嵘胡扯的地方
2024-10-09


最近有不少新加入胡扯游戏群的群友,问我应该如何做游戏。这里面有其他行业(例如App、电商)转行来的,也有美术、策划岗位想独立创业但不知道怎么搞定技术的。
尽管我在 2024:我应该去做独立游戏吗?一文中说过这样的话:
你必须是一个全能选手我们不得不承认,游戏人想做出心中的那个游戏,必须得是一个全能选手:自己写代码,自己做美术,自己编文案,自己配数值。
曾嵘,公众号:曾嵘胡扯的地方2024:我应该去做独立游戏吗?

但我仍然不建议非独立游戏创业者,去花费大量的精力学习编程。如果只是看到游戏行业「好赚钱」来淘金,那大概率是做商业游戏。自己学是成本,招人也是成本。如果两个成本差不多,而开发周期紧迫,为啥要自己学呢?

独立游戏创作者经常一专多能,核心是因为独立游戏能够经历更长时间的开发周期,这是商业游戏无法企及的优势。

对于游戏创业者来说,你只需要做到对技术(包括美术)工作的逻辑有基本了解,对于游戏的开发、测试、打包、上架的流程节奏了然于胸,对于游戏中常用的模块、功能、效果有一个开发周期概念,对于成本、人员、收益有清晰的认知。你就能做到不被别有用心的人欺骗。

如果还是太难,那你就算账,几个人,多长时间,工资多少,产品的品相看起来能不能收回成本。

可以参考这个思路:小游戏创业:为什么你不需要技术合伙人?

对于游戏程序员来说,前端务必要玩游戏。如果前端程序不玩游戏,不可能做好游戏。

后端技术太成熟了,对人没有这么高的要求,但需要记住:后端程序和后端运维是一体的,一个只会写服务器代码的后端程序员并不适合初创团队。

这篇文章成文在3年前。讲述了一个WEB程序员想做游戏的问答故事。即使你看不懂,我也建议你看看。对于创业者来说,重点是思路!思路,思路!

以下为原文:



前几天一个创业朋友 Q 同学咨询我如何学习做游戏。这是个很普遍的问题,经常会有其他行业的程序员向我咨询转到游戏行业应该做什么准备,所以我把回答整理了一下,希望对大家有用。

Q 同学问

小弟最近有一个想法,想要做一个网页联网的2D(或者伪3D)大富翁游戏。主要目的是:

  • (1)增进一下技术,了解一下相关的技术栈。

  • (2)未来有在这个领域创业的想法。不想把技术钻的太深,未来产品可能会找外包团队,但是自己要懂一些,可以做技术管理。

我想要通过做这个网页联网2D(或者伪3D)大富翁游戏把下面的技术串一串,实践一下:

  • (1)网页游戏开发,框架,引擎。

  • (2)联网游戏的服务器同步机理。

  • (3)微服务,Docker(当然我不知道游戏服务器是不是在做这种微服务和伸缩设计)。

  • (4)即使不做游戏,想要复习一下快速构建网络·服务的过程,以及相关的工具链(以 NodeJs 工具链为主)。

我现在的技术栈大概是:python写得多,java,c++复习一下会写,Js曾经比较熟,sql二把刀。网站的话,自己带几个人开发过最普通的低并发业务网站,用的 Flask,Jinjia,Js,Reddit,阿里云,了解服务器端的简单开发(不涉及到大量中间件,复杂数据结构,对数据实效性基本上没有要求),运维了解一些。也用 Vue,Express,webpack 等做过业务网站。

由于我是第一次做游戏,所以我不敢自己贸然行动。我想要请大大帮我梳理一下整个学习,工程的行进路线,包括资料(书,网页,教程,文档),大概的技术方向(框架的选择,技术的选择,架构的选择等),每一步学习的大方向,每一步开发的大方向。有了这份指导,我再去学习相关的知识,我想一定可以事半功倍!


作为 SAGI GAMES 的创始人,我想先声明,如果你不爱游戏,不玩游戏,那么最好不要转行做游戏。

是的,游戏行业钱多薪资高,但游戏行业也出了名的极难成功。你看到的成功项目,背后可能是上百次失败。如果没有对游戏本身的热爱,你很难坚持下来,更无法承受游戏开发过程中的不确定性,直到最终等到一个成功。

曾老师的回答

Q,先聊一下你的问题吧。

以你目前的积累和学习能力,我认为自学游戏开发是肯定没有问题的。你希望得到一些指导,可能是因为这个领域从来没有接触过,自己心里有点虚(很正常的心理)。另外也如你所说,有一些指导可以少走弯路事半功倍。

但我相信你心中一定有自己的方法。

我这些年积累了一些学习的方法论,但并没有非常系统地写出来,现在正好是个机会,我来做一个简单的梳理。

下面是我写过的一些文章,可以先读一遍:

  • 如何快速学习一门新技术

     这篇比较新,很全面的讲解了我自己学习技术的方法论,可以仔细读一下。

  • 移动游戏客户端技能树

    这篇是我在带技术团队的的时候写的,主要针对的是游戏客户端技术,服务端技术有一些,但没有作为重点。

  • 程序员和码农的区别是什么?

    这篇是我之前在一个论坛中的讨论记录,能代表我在技术学习上的思维方式。

  • Python 入门建议

    这是我学习 Python 的时候写的一篇,你主要关注思想和方法论层面就好。

  • 如何学习 cocos2d-x(请搜索CocosCreator并阅读官方文档

    https://blog.zengrong.net/post/how_to_study_cocos2d-x/

    我在学习 Cocos2d-x 时写的一篇,Cocos2d-x 是 Cocos Creator 之前的引擎,使用 C++ 开发。所以我当时把 C++ 重学了一遍,但主要还是写 Lua。这篇文章中提到了 OpenGL 的部分,是游戏客户端的核心(当然不学OpenGL也可以做出好游戏的)。

你可能注意到了,上面我提供的都是「渔」而非「鱼」。因为我认为,到了你这种高度的学习者,提供「渔」的效率更高。你有自己的学习方法论,直接给你「鱼」,反而会影响你的学习效率。

我在 如何快速学习一门新技术 一文中提到技术的定义: 可以通过现有资料进行全面掌握的解决实际问题的知识与能力。

从上面的定义可以看出,由于技术解决的是 实际问题,不可避免地,技术会根据现状的变化出现过时的情况。由于可以 通过现有资料全面掌握 时效性就显得尤为重要。

所以,我给你太多「鱼」,就是太多余。

为了让你能减少试错成本,下面就是必要的「鱼」的内容。

首先是开发引擎选择。

Python 目前你很熟悉,基于 Python 的游戏引擎是有的,但我不推荐。基于 C++/JAVA 的我更不推荐。

我推荐两个引擎:Cocos Createor (CCC)和 Unity。

CCC 是国产软件,国内三大 H5 引擎之一。CCC 可以开发 2D 和 3D(目前较弱) 游戏,使用 JS 或者 TS 开发,产品可以发布到微信等小游戏平台,可以作为 H5 页面发布,也可以打包成安卓或者 iOS 原生应用程序。

Unity 是市场占有率超过 50% 的游戏引擎。可以开发 3D 和 2D 游戏,使用 C# 开发,也有社区支持的 Lua 版本。面向安卓/iOS/PC/主机平台。

至于你应该选什么,主要应该基于市场和平台考虑。我的建议如下:

  • 如果你想快速试错,前期希望用 2D 游戏练手,建议先用 CCC。平台建议选择微信小游戏平台,可快速上架面向用户,流程简单顺畅。当然你也可以直接基于 H5 来发布。

  • 如果你想做 3D 游戏,面向 AppStore 或者安卓市场,就应该从 Unity 上手。

  • 其他的引擎,无论如何都不建议你用。等把这两个引擎吃透了再去看其他引擎的源码就行了。

  • Unreal 更是千万不要碰。你现在需要的是 DEMO。

根据你的前面的描述,2D 或者伪 3D,网页,相信你已经有选择了。

其次是书籍的选择。

引擎学习的部分,直接看官方文档就好了。不需要买什么书。买了也是浪费钱。

如果想深度钻研一下技术,可以看这几本:

  • 《游戏引擎架构》

     https://book.douban.com/subject/34864920/

  • 《OpenGL编程指南(原书第8版)》 

    https://book.douban.com/subject/26220248/

  • 《OpenGL ES 3.0编程指南》 

    https://book.douban.com/subject/26414014/

设计的部分,看这几本:

  • 《全景探秘游戏设计艺术》

     https://book.douban.com/subject/4837351/

  • 《游戏设计艺术(第2版)》 

    https://book.douban.com/subject/26791007/

  • 《通关!游戏设计之道(第二版)》 

    https://book.douban.com/subject/26905728/

  • 《游戏设计的236个技巧》 

    https://book.douban.com/subject/26653173/

  • 《游戏人工智能编程案例精粹》 

    https://book.douban.com/subject/19930152/

  • 《游戏编程中的人工智能技术》 

    https://book.douban.com/subject/1831698/

需要注意的是,对于游戏开发初学者来说,设计的部分应该远远比技术的部分重要。 但遗憾的是绝大部分初学者往往认为是反过来的。

代码再漂亮,也拼不出一个好游戏。

另外,你并非一定要看完上面的书才能开始动手写游戏。实际上,我建议你看完引擎文档就开始动手设计游戏。

上面的书,只是告诉你,当你期望向上走的时候,方向就在那里 不要走错路。

最后,讲一下我认同的个人游戏开发方法论。

DEMO 阶段,奉行拿来主义,能去买的素材就不要自己画,能拿来主义的地方就不要自己造轮子。

最小化原则作品,先把作品 run 起来,比优雅的代码,整洁的界面,完善的设计带给你的信心要大很多很多很多很多倍。

DEMO 出来了之后就要立即找到受众测试。游戏是做给别人玩的,不是做给你自己欣赏的。只有别人(除你之外的所有人)喜欢玩的游戏才是好游戏。

游戏不是艺术,游戏是娱乐。

等你做出一个成功的娱乐游戏之后,再来考虑艺术的事情。

https://civitai.com/images/26116587



机械工业出版社 & 胡扯游戏赠书活动调查

近期机械工业出版社与胡扯游戏合作组织赠书活动,欢迎大家投票选出感兴趣的书籍:



特别介绍

有很多重要内容,公众号发不了,但群里特别能聊。

群里有独立开发者,游戏公司创始人、大厂负责人、量子理论研究者……

关注公众号可以进群一起唠嗑,独立游戏、商业游戏、流量游戏、研发、投放、发行、运营、招人 都能聊,纯唠嗑也欢迎。



下面几个系列文章花了不少精力,可以读一读:


创业系列:



效率系列:



产品分析:


立项系列:



混变系列:


运营系列:

成长系列:

会议系列:

奇技淫巧:

荐号系列:


电子游戏是怎么赚钱的:


再多读几篇:


都刷到这里了,不来个「点赞」「分享」「在看」一键三连吗?


个人观点,仅供参考
继续滑动看下一个
曾嵘胡扯的地方
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存